﻿// using Aliyun.Acs.Core;
// using Aliyun.Acs.Core.Exceptions;
// using Aliyun.Acs.Core.Http;
// using Aliyun.Acs.Core.Profile;
// using Microsoft.Extensions.Logging;
// using Microsoft.Extensions.Options;
// using System;
// using System.Collections.Generic;
// using System.IO;
// using System.Linq;
// using System.Net;
// using System.Net.Http;
// using System.Security.Cryptography;
// using System.Text;
// using System.Threading.Tasks;
// using System.Xml.Serialization;

// namespace fi_portal.Services
// {
//     public class SMSSender : ISMSSender
//     {
//         private readonly IOptions<SMSOptions> _smsOptions;
//         private readonly ILogger<SMSSender> _logger;

//         public SMSSender(IOptions<SMSOptions> smsOptions, ILogger<SMSSender> logger)
//         {
//             _smsOptions = smsOptions;
//             _logger = logger;

//         }
//         public bool SendIdentityCode(string phonenumber, string code, int category = 1)
//         {
//             IClientProfile profile = DefaultProfile.GetProfile(_smsOptions.Value.RegionID,
//                 _smsOptions.Value.AccessKeyId,
//                 _smsOptions.Value.AccessSecret);
//             DefaultAcsClient client = new DefaultAcsClient(profile);
//             CommonRequest request = new CommonRequest
//             {
//                 Method = MethodType.POST,
//                 Domain = _smsOptions.Value.Domain,
//                 Version = _smsOptions.Value.Version,
//                 Action = "SendSms"
//             };
//             //request.Protocol = ProtocolType.HTTP;
//             request.AddQueryParameters("PhoneNumbers", phonenumber);
//             request.AddQueryParameters("SignName", "SAASSHOP");

//             if (category == 1)//register
//             {
//                 request.AddQueryParameters("TemplateCode", "SMS_171118449");
//             }
//             else//change password
//             {
//                 request.AddQueryParameters("TemplateCode", "SMS_171113435");
//             }

//             request.AddQueryParameters("TemplateParam", "{" + string.Format("code:{0}", code) + "}");
//             try
//             {
//                 CommonResponse response = client.GetCommonResponse(request);

//                 var retStr = System.Text.Encoding.Default.GetString(response.HttpResponse.Content);

//                 SMSReturn result = Newtonsoft.Json.JsonConvert.DeserializeObject<SMSReturn>(retStr);

//                 if (result.Code == "OK")
//                 {
//                     return true;
//                 }
//                 else
//                 {
//                     _logger.LogError(result.Message);
//                     return false;
//                 }

//             }
//             catch (ServerException e)
//             {
//                 _logger.LogError(e.ToString());
//                 return false;
//             }
//             catch (ClientException e)
//             {
//                 _logger.LogError(e.ToString());
//                 return false;
//             }

//         }


       


//         public class SMSReturn
//         {
//             public string Message { get; set; }
//             public string RequestId { get; set; }
//             public string Code { get; set; }

//         }




//     }
// }
